home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc / Sample Code / Sample Editors⁄Viewers / Cappuccino / Source / Action.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-12-08  |  4.9 KB  |  227 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Action.h
  3.  
  4.     Contains:    Actions for supporting undo and redo.
  5.  
  6.     Written by:    Troy Gaul
  7.     
  8.     Copyright:    © 1995 by Apple Computer, Inc., all rights reserved.
  9. */
  10.  
  11. #ifndef _ACTION_
  12. #define _ACTION_
  13.  
  14. //------------------------------------------------------------------------------
  15. // Forward declarations
  16. //------------------------------------------------------------------------------
  17.  
  18. struct Environment;
  19. class CAction;
  20. class Cappuccino;
  21. class CCappuccinoContent;
  22.  
  23. //------------------------------------------------------------------------------
  24. // ActionCode
  25. //------------------------------------------------------------------------------
  26.  
  27. typedef ODUShort ActionCode;
  28.  
  29. //------------------------------------------------------------------------------
  30. // SCappuccionActionState
  31. //------------------------------------------------------------------------------
  32.  
  33. struct SCappuccionActionState
  34. {
  35.     CAction*        fAction;
  36. };
  37.  
  38. //------------------------------------------------------------------------------
  39. // CAction
  40. //------------------------------------------------------------------------------
  41.  
  42. class CAction {
  43.  
  44. public:
  45.  
  46.     virtual ~CAction();
  47.     
  48.     // -- Performing --
  49.     
  50.     virtual void Do(Environment* ev);
  51.     
  52.     virtual void Undo(Environment* ev);
  53.     
  54.     virtual void Redo(Environment* ev);
  55.  
  56. protected:
  57.  
  58.     CAction(Cappuccino* part, ActionCode);
  59.  
  60.     // -- Misc. --
  61.  
  62.     virtual ODName* GetActionName(Environment* ev);
  63.     
  64.     virtual ODName* GetUndoRedoName(Environment* ev, ODBoolean isUndo);
  65.     
  66.     virtual void AddToActionHistory(Environment* ev, 
  67.                                     ODActionType actionType = kODSingleAction);
  68.     
  69. protected:
  70.  
  71.     Cappuccino*        fPart;
  72.     ActionCode        fActionCode;
  73. };
  74.  
  75. //------------------------------------------------------------------------------
  76. // CTextChangeAction
  77. //------------------------------------------------------------------------------
  78.  
  79. class CTextChangeAction : public CAction {
  80.  
  81.     typedef CAction Inherited;
  82.  
  83. public:
  84.  
  85.     CTextChangeAction(Cappuccino* part, ActionCode,
  86.                       CCappuccinoContent* newContent);
  87.     
  88.     virtual ~CTextChangeAction();
  89.     
  90.     // -- Performing --
  91.     
  92.     virtual void Do(Environment* ev);
  93.     
  94.     virtual void Undo(Environment* ev);
  95.     
  96.     virtual void Redo(Environment* ev);
  97.  
  98. protected:
  99.  
  100.     CCappuccinoContent*        fPreviousContent;
  101.     CCappuccinoContent*        fCurrentContent;
  102. };
  103.  
  104. //------------------------------------------------------------------------------
  105. // CClipboardTextChangeAction
  106. //------------------------------------------------------------------------------
  107.  
  108. class CClipboardTextChangeAction : public CTextChangeAction {
  109.  
  110.     typedef CTextChangeAction Inherited;
  111.  
  112. public:
  113.  
  114.     CClipboardTextChangeAction(Cappuccino* part, ActionCode, ODCloneKind, 
  115.                                CCappuccinoContent*);
  116.     
  117.     virtual ~CClipboardTextChangeAction();
  118.     
  119.     // -- Performing --
  120.     
  121.     virtual void Do(Environment* ev);
  122.     
  123.     virtual void Undo(Environment* ev);
  124.     
  125.     virtual void Redo(Environment* ev);
  126.  
  127. private:
  128.  
  129.     ODUpdateID        fUpdateID;
  130.     ODCloneKind        fCloneKind;
  131.  
  132. };
  133.  
  134. //------------------------------------------------------------------------------
  135. // CCutAction
  136. //------------------------------------------------------------------------------
  137.  
  138. class CCutAction : public CClipboardTextChangeAction {
  139.  
  140.     typedef CClipboardTextChangeAction Inherited;
  141.  
  142. public:
  143.  
  144.     CCutAction(Cappuccino* part);
  145.  
  146. };
  147.  
  148. //------------------------------------------------------------------------------
  149. // CPasteAction
  150. //------------------------------------------------------------------------------
  151.  
  152. class CPasteAction : public CClipboardTextChangeAction {
  153.  
  154.     typedef CClipboardTextChangeAction Inherited;
  155.  
  156. public:
  157.  
  158.     CPasteAction(Cappuccino* part, CCappuccinoContent*);
  159.  
  160. };
  161.  
  162. //------------------------------------------------------------------------------
  163. // CClearAction
  164. //------------------------------------------------------------------------------
  165.  
  166. class CClearAction : public CTextChangeAction {
  167.  
  168.     typedef CTextChangeAction Inherited;
  169.  
  170. public:
  171.  
  172.     CClearAction(Cappuccino* part);
  173.  
  174. };
  175.  
  176. //------------------------------------------------------------------------------
  177. // CDropAction
  178. //------------------------------------------------------------------------------
  179.  
  180. class CDropAction : public CTextChangeAction {
  181.  
  182.     typedef CTextChangeAction Inherited;
  183.  
  184. public:
  185.  
  186.     CDropAction(Cappuccino* part, CCappuccinoContent*);
  187.  
  188. };
  189.  
  190. //------------------------------------------------------------------------------
  191. // CDragBeginAction
  192. //------------------------------------------------------------------------------
  193.  
  194. class CDragBeginAction : public CAction {
  195.  
  196.     typedef CAction Inherited;
  197.  
  198. public:
  199.  
  200.     CDragBeginAction(Cappuccino* part);
  201.     
  202.     // -- Performing --
  203.     
  204.     virtual void Do(Environment* ev);
  205.  
  206. };
  207.  
  208. //------------------------------------------------------------------------------
  209. // CDragEndAction
  210. //------------------------------------------------------------------------------
  211.  
  212. class CDragEndAction : public CAction {
  213.  
  214.     typedef CAction Inherited;
  215.  
  216. public:
  217.  
  218.     CDragEndAction(Cappuccino* part);
  219.     
  220.     // -- Performing --
  221.     
  222.     virtual void Do(Environment* ev);
  223.  
  224. };
  225.  
  226.  
  227. #endif